apply plugin: 'idea'
apply plugin: 'eclipse'

group = '{{groupId}}'
version = '{{artifactVersion}}'

buildscript {
    repositories {
        jcenter()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:1.5.+'
        classpath 'com.github.dcendents:android-maven-gradle-plugin:1.3'
    }
}

repositories {
    jcenter()
}


if(hasProperty('target') && target == 'android') {

	apply plugin: 'com.android.library'
	apply plugin: 'com.github.dcendents.android-maven'

	android {
	    compileSdkVersion 23
	    buildToolsVersion '23.0.2'
	    defaultConfig {
	        minSdkVersion 14
	        targetSdkVersion 23
	    }
	    compileOptions {
	        sourceCompatibility JavaVersion.VERSION_1_7
	        targetCompatibility JavaVersion.VERSION_1_7
	    }

	    // Rename the aar correctly
	    libraryVariants.all { variant ->
	        variant.outputs.each { output ->
	            def outputFile = output.outputFile
	            if (outputFile != null && outputFile.name.endsWith('.aar')) {
	                def fileName = "${project.name}-${variant.baseName}-${version}.aar"
	                output.outputFile = new File(outputFile.parent, fileName)
	            }
	        }
	    }

      dependencies {
          provided 'javax.annotation:jsr250-api:1.0'
      }
	}

	afterEvaluate {
	    android.libraryVariants.all { variant ->
	        def task = project.tasks.create "jar${variant.name.capitalize()}", Jar
	        task.description = "Create jar artifact for ${variant.name}"
	        task.dependsOn variant.javaCompile
	        task.from variant.javaCompile.destinationDir
	        task.destinationDir = project.file("${project.buildDir}/outputs/jar")
	        task.archiveName = "${project.name}-${variant.baseName}-${version}.jar"
	        artifacts.add('archives', task);
	    }
	}

	task sourcesJar(type: Jar) {
	    from android.sourceSets.main.java.srcDirs
	    classifier = 'sources'
	}

	artifacts {
	    archives sourcesJar
	}

} else {

	apply plugin: 'java'
	apply plugin: 'maven'

    sourceCompatibility = JavaVersion.VERSION_{{^java8}}1_7{{/java8}}{{#java8}}1_8{{/java8}}
    targetCompatibility = JavaVersion.VERSION_{{^java8}}1_7{{/java8}}{{#java8}}1_8{{/java8}}

	install {
	    repositories.mavenInstaller {
	        pom.artifactId = '{{artifactId}}'
	    }
	}

	task execute(type:JavaExec) {
	   main = System.getProperty('mainClass')
	   classpath = sourceSets.main.runtimeClasspath
	}
}

ext {
    oltu_version = "1.0.1"
    {{^usePlay24WS}}
    retrofit_version = "2.2.0"
    {{/usePlay24WS}}
    {{#usePlay24WS}}
    retrofit_version = "2.1.0"
    jackson_version = "2.7.5"
    play_version = "2.4.11"
    {{/usePlay24WS}}
    swagger_annotations_version = "1.5.12"
    junit_version = "4.12"
    {{#useRxJava}}
    rx_java_version = "1.2.9"
    {{/useRxJava}}
    {{#useRxJava2}}
    rx_java_version = "2.0.7"
    {{/useRxJava2}}
    {{^java8}}
    jodatime_version = "2.9.4"
    {{/java8}}
}

dependencies {
    compile "com.squareup.retrofit2:retrofit:$retrofit_version"
    compile "com.squareup.retrofit2:converter-scalars:$retrofit_version"
    compile "com.squareup.retrofit2:converter-gson:$retrofit_version"
    {{#useRxJava}}
    compile "com.squareup.retrofit2:adapter-rxjava:$retrofit_version"
    compile "io.reactivex:rxjava:$rx_java_version"
    {{/useRxJava}}
    {{#useRxJava2}}
    compile "com.jakewharton.retrofit:retrofit2-rxjava2-adapter:1.0.0"
    compile "io.reactivex.rxjava2:rxjava:$rx_java_version"
    {{/useRxJava2}}
    compile "io.swagger:swagger-annotations:$swagger_annotations_version"
    compile "org.apache.oltu.oauth2:org.apache.oltu.oauth2.client:$oltu_version"
    {{^java8}}
    compile "joda-time:joda-time:$jodatime_version"
    {{/java8}}
    {{#usePlay24WS}}
    compile "com.typesafe.play:play-java-ws_2.11:$play_version"
    compile "com.squareup.retrofit2:converter-jackson:$retrofit_version"
    compile "com.fasterxml.jackson.core:jackson-core:$jackson_version"
    compile "com.fasterxml.jackson.core:jackson-annotations:$jackson_version"
    compile "com.fasterxml.jackson.datatype:jackson-datatype-{{^java8}}joda{{/java8}}{{#java8}}jsr310{{/java8}}:$jackson_version"
    {{/usePlay24WS}}

    testCompile "junit:junit:$junit_version"
}
